categorical combinatory logic